﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MNNUTEM
{
    public partial class Pedidos : Form
    {

        crudPedido cPedido;
        int idPedido,stock,cantidadpedido,cantidadproducto;
        string rutCliente, idProducto, idSucursal;


        public Pedidos()
        {
            InitializeComponent();
            cPedido = new crudPedido();
        }

        private void updateGridView()
        {
            dataGridView1.DataSource = cPedido.Consultation("select *from Pedido");

        }

        private void Pedidos_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource = cPedido.Consultation("select *from Pedido");
            dataGridView2.DataSource = cPedido.Consultation("select *from Producto");
            dataGridView3.DataSource = cPedido.Consultation("select *from Cliente");
            button4.Enabled = false;
            button3.Enabled = false;
        }

        private void getdatos()
        {
            DataSet DS;
            DS = cPedido.Consultation2("select *from Pedido where idPedido='" + idPedido + "'");
            textBox1.Text = DS.Tables[0].Rows[0][2].ToString();
            textBox13.Text = DS.Tables[0].Rows[0][0].ToString();
            dateTimePicker1.Text = DS.Tables[0].Rows[0][1].ToString();
            textBox4.Text = DS.Tables[0].Rows[0][6].ToString();
            textBox5.Text = DS.Tables[0].Rows[0][5].ToString();
            textBox2.Text = DS.Tables[0].Rows[0][3].ToString();
            textBox3.Text = DS.Tables[0].Rows[0][4].ToString();
          

        }


        private void updateId(int idProducto)
        {

            DataSet DS;
            DS = cPedido.Consultation2("select count(idPedido) from Pedido");
            int count = int.Parse(DS.Tables[0].Rows[0][0].ToString()) + 1;

            if (idProducto != count)
                for (int i = idProducto; i <= count; i++)
                {

                    cPedido.SetId(i, i + 1);
                }
            else { }

        }


        private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {

            idPedido = int.Parse(dataGridView1[0, e.RowIndex].Value.ToString());
            getdatos();
            button1.Enabled = false;
            button3.Enabled = true;
            button4.Enabled = true;
           
        }

        private void dataGridView3_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            rutCliente = dataGridView3[0, e.RowIndex].Value.ToString();
            textBox4.Text = rutCliente.ToString();
        }

        private void dataGridView2_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            idProducto = dataGridView2[0, e.RowIndex].Value.ToString();
            textBox3.Text = idProducto.ToString();
            DataSet DS;
            DS = cPedido.Consultation2("select idProducto, Sucursal_idSucursal from Producto where idProducto='" + idProducto + "'");
            textBox3.Text = DS.Tables[0].Rows[0][0].ToString();
            idSucursal=textBox5.Text = DS.Tables[0].Rows[0][1].ToString();
        }


        private void descstock()
        {
            DataSet DS;
            int cped;
            DS = cPedido.Consultation2("SELECT  idPedido From Pedido Order by idPedido desc limit 1");
            cped = int.Parse(DS.Tables[0].Rows[0][0].ToString());
            DS = cPedido.Consultation2("SELECT  cantidadPedido, cantidadProducto FROM Pedido JOIN Producto WHERE Producto_idProducto = idProducto AND idPedido ='" + cped + "' ");
            cantidadpedido= int.Parse(DS.Tables[0].Rows[0][0].ToString());
            cantidadproducto = int.Parse(DS.Tables[0].Rows[0][1].ToString());
            stock=cantidadproducto - cantidadpedido;
          
            cPedido.Consultation("UPDATE Producto set cantidadProducto='"+stock+"' where idProducto='"+idProducto+"'");


        }

        private void button1_Click(object sender, EventArgs e)
        {
            cPedido.Insert(textBox13,dateTimePicker1.Value.ToShortDateString(), textBox1, textBox2, textBox3.Text,idSucursal, textBox4);
            updateGridView();
            descstock();
        }

        private void clean()
        {
            textBox1.Text = "";
            textBox2.Text = "";
          
            textBox4.Text = "";
            button1.Enabled = true;
            button3.Enabled = false;
            button4.Enabled = false;
           
        
        }

        private void button2_Click(object sender, EventArgs e)
        {
            clean();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            cPedido.Delete(idPedido);
            updateId(idPedido);
            updateGridView();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            cPedido.Set(textBox13, dateTimePicker1.Value.ToShortDateString(),   textBox1,textBox2,textBox3,textBox5,textBox4,idPedido);
            updateGridView();
        }

       
    }
}
